Repository navigation
fix: restore MCP compatibility and confine type-map reads - #47
Coding-Dev-Tools wants to merge 5 commits into
Conversation
Automated Code ReviewRuff lint: 0 issue(s)Ruff format: CleanSecret detection: 0 potential secret(s)Verdict: PASS Automated by Coding-Dev-Tools/.github reusable workflow. |
|
Review follow-up for the automated review, verified at head The 31 formatting findings are fixed in a separate mechanical commit. Ruff 0.16.10 now reports all 57 Python files formatted and zero lint findings. AST comparisons across every changed file are identical, including all 686 assertions in those files. All 14 MCP tests and the custom-revision fixture are unchanged. The remaining
The fixture is therefore a reproducible false positive for credential detection. Its expected semantics and assertions have been preserved; no exclusions, allowlists, security/lint settings, or check policies changed. The current automated check still reports FAIL for that result and requires maintainer disposition; this evidence does not claim the gate is cleared. Current-head CI passed independently. PR47 remains a draft and is not merged. |
Use the supported FastMCP constructor options for SSE host and port. Add offline signature-enforced transport regressions while preserving stdio defaults and optional MCP use.
Validate both optional MCP type-map paths against the existing allowed root after canonical link resolution. Add synthetic escape and valid-map regressions while preserving standalone CLI behavior and all prior MCP tests.
Keep the custom revision test exact while using a clearly synthetic custom identifier. Retain the parent and message assertions and all migration operations without detector suppression or policy changes.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Schemaforge's MCP integration had three independent defects: optional extras allowed SDK 2.x despite importing the v1
FastMCPAPI; SSE passed unsupported address arguments torun(); and both optional MCP type-map paths reachedTypeConfig.from_filewithout the existing root validation.Both MCP declarations now require
mcp>=1.0,<2. SSE configures host/port through the supported constructor and retains the stdio behavior. Bothconvert.type_map_pathandcheck.type_map_pathnow use the same allowed-root contract ascheck.directory:SCHEMAFORGE_MCP_ROOT, or the current working directory when unset. Canonical resolution follows links before validation, and the validated canonical path is passed to loading. Outside-root maps are rejected before any loader call. Standalone CLI map loading is unchanged.Five separate commits cover:
mcp>=1.0,<2).convertandchecktype-map paths to the MCP root).tests/test_new_formats.pyto use the explicitly synthetictestrevisionID, fully resolving the automated secret scanner false positive (Hex High Entropy String).Current head:
b943c38266fe5c6cd50a5a4c501e7723af09f156Current tree:
435d40dedbb3d81ff10cf0a2c6c5f35855d89e28Validation:
TypeError, while both stdio cases passed. Tests enforce the installed SDK's real signature with transport execution stubbed.Status:
required_approving_review_count: 1,enforce_admins: false).